home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-11 / gl101.zip / READ.ME < prev    next >
Text File  |  1991-06-27  |  26KB  |  529 lines

  1.  
  2.                             The Graphics Language
  3.                                      For
  4.                                  Clipper 5.01
  5.  
  6.                                 (Version 1.01)
  7.  
  8.                             Addendum Documentation
  9.                                  24 June 1991
  10.  
  11.  
  12. ______________________________________________________________________________
  13. Change Summary: 24 June 1991 [Release v1.01]
  14.  
  15. -  Changed all PUBLIC arrays and variables to STATIC.  Also changed all 
  16.    PRIVATE arrays to LOCAL declarations.
  17.  
  18. -  Modified the SET MOUSE command to account for the change to Clipper 5.01 
  19.    that caused the function ONOFF() to be eliminated.
  20.  
  21. -  Modified the three business objects so that the SELECT() function handles
  22.    the saving and restoring of the plot databases properly.
  23.  
  24. -  Modified the VIEWICON utility to enable the display of separate as well
  25.    as composite icons and fixed a bug in the composite display that 
  26.    previously used the color command for each of the four color planes.
  27.  
  28. -  Established preprocessor constants for NoSuchHandle and NoLabelsLeft and
  29.    set to error codes 04 and 05 respectively.
  30.  
  31. -  Modified the VIEWICON and MENUDEMO programs to change all PRIVATE
  32.    variables to LOCAL variables.  Also note that both the VIEWICON and
  33.    MENUDEMO programs must be compiled with the /N option.
  34.  
  35. ______________________________________________________________________________
  36. Design Issues:
  37.  
  38. -  The event array only contains the super icon number in the case of a 
  39.    physical object.  This needs to change so that once an icon event is de-
  40.    fined, the programmer need not worry if the icon file is loaded when the
  41.    event is activated.  The problem will manifest itself when different icons
  42.    have been selected during the define sequence from multiple icon files, and
  43.    activation occurs later among those disparate icons.  The work around for
  44.    this is that you always immediately activate when defining an icon, but
  45.    you won't be able to refresh the icons without reloading each icon file.
  46.  
  47.    This can be changed if(when) icons can be collectively stored in a dynamic
  48.    file.  Icon "labels" will also help alleviate this design flaw.
  49.  
  50. -  It may be that the event region coordinates will need to be stored in a 
  51.    different part of the array separate from the phisical object coordinates.
  52.    Currently, we use the physical coordinates as the basis for the click re-
  53.    gion.  This is not the best methodology because there will be times when
  54.    a programmer will want a mouse hot region that is larger or perhaps smaller
  55.    than the object itself.  This does not impact invisible objects however.
  56.  
  57. -  Since The Graphics Language supports both row/column and cartesian posi-
  58.    tioning coordinates, all further reference to coordinates will be specified
  59.    as Pos1,Pos2 where Pos1 is the Clipper row number from 0 to 24, or the car-
  60.    tesian horizontal (X) coordinate from 0 to 1350.  Pos2 cooresponds to the
  61.    Clipper column coordinates from 0 to 79, or the cartesian vertical co-
  62.    ordinates 0 to 1000.  In version 1.0 however, there is no support for the
  63.    use of the Cartesion coordinates.  That will come later on in version 1.1.
  64.  
  65. -  Currently there are no functions that allow a programmer to inquire about 
  66.    changes that occur in the event array when a mouse button is clicked.
  67.    These will be added after the first Beta Test pass.
  68.  
  69. -  The business charts currently use a FILTER command and this should be
  70.    changed to facilitate faster processing on large files.  I suggest that
  71.    anyone thinking about using the FILTER clause should consider a different 
  72.    method of isolating data from large files.  Then use the GL commands on
  73.    the smaller database subsets.
  74.  
  75. -  The FLASH command is basically a "redraw" command and this should change
  76.    to a method that uses Xor to simulate a flashing when an object is clicked
  77.    on.
  78.  
  79. -  There is an experimental menu function in a new sample program named
  80.    MENUDEMO.PRG.  It demonstrates the characteristics of a planned menu 
  81.    object that has three dimensional attributes.  The function creates an 
  82.    array of menu choices and further uses that array to create multiple 
  83.    event regions in the Graphics Language event array.  There has been very 
  84.    little testing and use of this function.  It is only provided for 
  85.    demonstration purposes.
  86.  
  87. -  All color and other constants are coded as manifest constants in the .CH 
  88.    file.  Unfortunately, this means that they are hard coded into any 
  89.    function in the library that uses them.  Users will not be able to change 
  90.    these unless you provide the source to the LIB as well as the CH.
  91.  
  92. -  Perhaps there should be VCENTER and VTOP options for the DRAW text 
  93.    command.
  94.  
  95. ______________________________________________________________________________
  96. Change Summary: 29 Jan 1991 to 05 Feb 1991 [Beta v1.0f]
  97.  
  98. -  Modified the __DrawBevel() function to display the first box in a pattern
  99.    fill of 20 to clear the area.
  100.  
  101. -  Modified the __DrawBevel() function to save the current Clipper color and
  102.    then restore it afterwards.
  103.  
  104. -  Fixed a bug in the __WordToColor() function that was causing color incon-
  105.    sistencies due to Clipper's inconsistent return values as discovered by
  106.    Peter Freese.
  107.  
  108.  
  109. ______________________________________________________________________________
  110. Change Summary: 23 Jan 1991 to 28 Jan 1991 [Beta v1.0e]
  111.  
  112. -  Fixed a bug in the bar chart color statement so that it now will support
  113.    the word COLOUR as well as COLOR.
  114.  
  115. -  Modified the SET MOUSE ON command to check for the existence of a mouse
  116.    driver, and abort if unavailable.
  117.  
  118. -  Modified the __PieChart() function to use a more appropriate normalizing
  119.    algorithym recommended by BPS.
  120.  
  121.  
  122. ______________________________________________________________________________
  123. Change Summary: 18 Jan 1991 to 23 Jan 1991 [Beta v1.0d]
  124.  
  125. -  The commands DRAW BOX and CLEAR GRAPHICS WINDOW have a new command clause
  126.    option called BEVEL.  When used with DRAW BOX, the box will have beveled 
  127.    edges and appear to be 3 dimensional.  The color support for the various
  128.    bevel surfaces are defined in the GLLIBR.CH header file.  When used with
  129.    the CLEAR GRAPHICS WINDOW command, BEVEL will clear a window area that is 
  130.    slightly larger.  This is necessary because beveled boxes are displayed
  131.    slightly larger.  Future vuersions will enable better color control from
  132.    the command language rather that hard coded color schemes.
  133.  
  134. -  A bug in the PCL5 optional clause of SET VECTOR PRINT has been fixed.
  135.  
  136. -  A bug in the SET VECTOR PRINT command that causes the PATTERN variable
  137.    not to be passed from the command to the function has been fixed.
  138.  
  139. -  A bug in the SET VECTOR PRINT command that causes a case sensitive eval-
  140.    uation of the MMS clause has been fixed to ingnor case sensitivity.
  141.  
  142. -  Two new optional clauses have been added to the DRAW <text> command that
  143.    enable centered and right justification modes to be invoked.  The command
  144.    options are CENTERED, and RIGHT.  For example, the following syntax could
  145.    be used to display a title in the center of the screen on line 2.
  146.  
  147.       draw "The Graphics Language" at 02,40 using system 1609 center
  148.  
  149.    Note that the CENTER command invokes "centering" at the column origin.
  150.  
  151.    Also note that the DRAW <text> command defaults to left justification, 
  152.    but the word LEFT may be used in the command syntax.  The LEFT clause is 
  153.    a no-op command.
  154.  
  155. -  The SET GRAPHICS PRINT command has been changed and now requires only one
  156.    parameter, LPT1, LPT2, LPT3, COM1, or COM2.  For example, to send printer
  157.    output to a serial printer attached to COM1, the following syntax is
  158.    appropriate.
  159.  
  160.       SET GRAPHICS PRINT TO com1          // send output to serial, com1
  161.  
  162. -  The WAIT EVENT command has been modified to continue looping until a valid
  163.    click region has been selected.
  164.  
  165. -  A bug in the __DgeColor() function was causing Clipper color settings to 
  166.    be evaluated improperly.  This has been fixed.
  167.  
  168. -  The DRAW BAR CHART command has been altered in the following ways:
  169.  
  170.    > The COLOR option now accepts a color parameter instead of alternating
  171.      the colors of the bars.  The COLOR option is used to specify the color
  172.      of the bars.  The current Clipper color will be used lacking a COLOR
  173.      specification.
  174.  
  175.    > The 3D option now draws the outline of the bars but does not fill the
  176.      bar displays.
  177.  
  178. ______________________________________________________________________________
  179. Change Summary: 01 Jan 1991 to 18 Jan 1991 [Beta v1.0c]
  180.  
  181. -  The FIX POSITION AT and SET DGE VERSION TO commands have been removed from 
  182.    the product.  They serve no useful purpose at the present time.
  183.  
  184. -  The SET POSTSCRIPT PRINT command has been changed to SET VECTOR PRINT with
  185.    command option modifications as follows:
  186.       
  187.      - The PCL5 and/or LASERJET optional clauses are the default.
  188.      - The POSTSCRIPT optional clause is new.
  189.      - The GREYSCALE optional clause is new and applies to PCL5/LASERJET III
  190.          printing only.
  191.  
  192.    All other optional statements that have been previously documented remain 
  193.    unchanged.  See the command documentation below for complete details.
  194.  
  195. -  The only changes that have been made to the documentation are the removal
  196.    of FIX POSITION AT and SET DGE VERSION.  Additionally, the SET POSTSCRIPT
  197.    PRINT command has changed to SET VECTOR PRINT as shown below.  Note that
  198.    there have been changes to the command options in SET VECTOR PRINT.  Also
  199.    note that these changes have been updated to the Norton Guide database
  200.    included with beta version 1.0c.
  201.  
  202.    SET VECTOR PRINT
  203.  
  204.    Description:
  205.    This command toggles vector printing to an ON or OFF state and accepts
  206.    commands to control page eject, color, and other aspects of vector
  207.    printing.  This command, without any arguments will toggle vector
  208.    printing off and eject the current page.
  209.  
  210.    Syntax:
  211.    SET VECTOR PRINT [ON] [OFF]
  212.       [HORIZONTAL OFFSET <hoffset>]
  213.       [VERTICAL OFFSET <voffset>]
  214.       [HORIZONTAL LENGTH <hlength>]
  215.       [UNITS <units>]
  216.       [VERTICAL SCALE <vscale>]
  217.       [PORTRAIT]
  218.       [PCL5]
  219.       [LASERJET]
  220.       [POSTSCRIPT]
  221.       [WINDOW]
  222.       [COLOR]
  223.       [PATTERN]
  224.       [EJECT]
  225.       [NOEJECT]
  226.  
  227.    Arguments:
  228.    <hoffset> is the horizontal offset from the left of the page.
  229.    <voffset> is the vertical offset from the base of the page.
  230.    <hlength> is the base length of the image on the page.
  231.    <units> is the specifies either "MMS", points "1/72" nd of an inch, or
  232.      "1/100" th of an inch.
  233.    <vscale> is the specifies the Cartesian Y axis scale factor percent.
  234.    [PORTRAIT] is the invokes an orientation angle on page of 90 degrees.
  235.    [PCL5] invokes a printing mode that supports HPGL, LaserJet III and above,
  236.      and any printer that supports HPGL plotter emulation.
  237.    [LASERJET] is synonomous with PCL5.
  238.    [POSTSCRIPT] invokes a Postscript printing mode.
  239.    [WINDOW] prints within the current clipping window.
  240.    [COLOR] is the invokes postscript color printing mode.
  241.    [PATTERN] is the invokes postscript pattern priority.
  242.    [NOEJECT] is the suppresses page ejecting when toggling postscript 
  243.      printing to the OFF state.
  244.    
  245.    Example:
  246.    SET VECTOR PRINT ON LASERJET              // toggle vector print on
  247.    * drawing commands *
  248.    SET VECTOR PRINT OFF EJECT                // toggle vector off, eject
  249.  
  250.             Purpose: Set the vector print feature ON or OFF
  251.     Mapped Function: __SetVectorPrint() contained in GLLIBR.PRG.
  252.       dGE functions: printps(),vpon(),vpoff()
  253.       Other GL UDFs: None.
  254.    System variables: None.
  255.    System constants: None.
  256.  
  257. -  In previous versions, there were certain hard coded row and column 
  258.    increments that were in use to automatically adjust the height and width
  259.    of frames and positioning of text.  This caused some confusion when using
  260.    the DRAW BOX, DEFINE EVENT REGION, and DRAW TEXT commands together.  The
  261.    confusion has been eliminated and now all row and column positioning is
  262.    performed without these subtle adjustments.
  263.       
  264.  
  265. ______________________________________________________________________________
  266. Change Summary: 30 Nov 1990 to 31 Dec 1991 [Beta v1.0b]
  267.  
  268. -  A resturcturing of the object array has resulted in a more formal declar-
  269.    ation of creating, activating, deactivating, and releasing event object
  270.    and such.  The following commands have been added and/or restructured.
  271.  
  272. -  Event Objects:
  273.    ──────────────────────────────────────────────────────────────────────────
  274.    Event objects make up the basic structure that support the event menuing
  275.    system.  Each event has a click area that is the same size and coordintes
  276.    of the physical object or an invisible event region.  The click area does
  277.    not include a shadow area if specified.  Currently, there are two types
  278.    of event objects supported; invisible region, and super icon button.  The
  279.    commands asterisked(*) are planned for the near future.
  280.  
  281.       DEFINE EVENT <label>                // event region (no object)
  282.          FROM <Pos1_a>,<Pos1_b>           // upper left coordinates
  283.          TO <Pos2_a>,<Pos2_b>             // lower right coordinates
  284.          [ACTIVATE]                       // optionally arm the region
  285.        
  286.       DEFINE EVENT <label>                // icon event object
  287.          AT <Pos1>,<Pos2>                 // center point coordinate
  288.          USING SUPERICON <icon>           // specify a super icon
  289.          [ACTIVATE]                       // display and activate icon button
  290.          [SHADOW]                         // display drop shadow
  291.  
  292.       *DEFINE EVENT <label>               // text event object
  293.          FROM <Pos1_a>,<Pos1_b>           // upper left coordinates
  294.          TO <Pos2_a>,<Pos2_b>             // lower right coordinates
  295.          USING TEXT [<string>]            // specify type and [text]
  296.          [ACTIVATE]                       // display and activate text button
  297.          [BOX]                            // optionally display a frame
  298.          [SHADOW]                         // display drop shadow
  299.  
  300.       *DEFINE EVENT <label>               // check box event object
  301.          AT <Pos1>,<Pos2>                 // center point coordinate
  302.          USING CHECK BOX [<title>]        // specify type and [title]
  303.          [ACTIVATE]                       // display and activate check box
  304.  
  305.       *DEFINE EVENT <label>               // radio button event object
  306.          AT <Pos1>,<Pos2>                 // center point coordinate
  307.          USING RADIO BUTTON [<title>]     // specify type and [title]
  308.          [ACTIVATE]                       // display and activate radio button
  309.  
  310.       ACTIVATE EVENT <label>              // activate event object and display
  311.  
  312.       FLASH EVENT <label>                 // clear and redraw event object
  313.  
  314.       MOVE EVENT <label> TO <Pos1>,<Pos2> // move event region and object
  315.  
  316.       WAIT EVENT TO <memvar>              // process all active events
  317.          [NOFLASH]                        // supress select flash
  318.  
  319.       WAIT EVENT <label>                  // process a single event object
  320.          [DEACTIVATE]                     // optionally deactivate
  321.          [RELEASE]                        // optionally release the event
  322.  
  323.       DEACTIVATE EVENT <label>            // deactivate event object
  324.            [CLEAR]                        // clear from screen also
  325.  
  326.       RELEASE EVENT <label>               // kills the event and clears
  327.        
  328.    For example, the procedure for prompting for multiple icon buttons in 
  329.    various locations on the screen would be accomplished like this:
  330.  
  331.       CLEAR                               // clear the text screen (std Clipper 5.0 command)
  332.       SET GRAPHICS ON                     // graphics mode
  333.       SET MOUSE ON                        // turn on the mouse
  334.       SET ICON TO DEMO.ICO                // load the super icon file
  335.       CLEAR GRAPHICS SCREEN               // clear the graphics screen
  336.       DEFINE EVENT "one"   AT 03,08 USING SUPERICON 2 SHADOW ACTIVATE
  337.       DEFINE EVENT "two"   AT 09,08 USING SUPERICON 4 SHADOW ACTIVATE
  338.       DEFINE EVENT "three" AT 15,08 USING SUPERICON 6 SHADOW ACTIVATE
  339.       DEFINE EVENT "four"  AT 21,08 USING SUPERICON 7 SHADOW ACTIVATE
  340.       DEFINE EVENT "five"  AT 21,63 USING SUPERICON 1 SHADOW ACTIVATE
  341.       WAIT EVENT TO LABEL_                // wait for a mouse click
  342.       DO CASE                             // evaluate the choice
  343.       CASE LABEL_ == "one"                // if button one was clicked
  344.             ...                           // process code for button one
  345.       CASE LABEL_ == "two"                // if button one was clicked
  346.             ...                           // process code for button one
  347.  
  348.    So, for example, the procedure for prompting for a single mouse click
  349.    at any location on the screen would be accomplished like this:
  350.  
  351.       DEFINE EVENT "pause" ;              // define and activate the event
  352.          FROM 00,00 TO 24,79 ;            // specify the location
  353.          ACTIVATE                         // activate the event region
  354.       WAIT EVENT "pause" RELEASE          // wait for a mouse press
  355.  
  356. -  For our neighbors to the south (Australia) and those to the east (UK), 
  357.    I've added support for the word COLOUR.  Wherever the COLOR statement is 
  358.    documented, you may also use alternate.
  359.  
  360. -  Added support for the clipwin() function.  SET DRAWING AREA has been
  361.    assigned as the command for this function, and the syntax is shown below.
  362.  
  363.       SET DRAWING AREA [FROM <Pos1_a>,<Pos1_b> TO <Pos2_a>,<Pos2_b>]
  364.  
  365.    Using this command without the FROM...TO clause will cause the drawing
  366.    area to be set to dGE's default of the entire visible screen.
  367.  
  368. -  Added support for the snapcopy(), snappaste(), and snapkill() functions.
  369.    The commands to effect a screen save and restore are shown below.
  370.  
  371.       SAVE GRAPHICS SCREEN <label> ;
  372.          FROM <Pos1_a>,<Pos1_b> TO <Pos2_a>,<Pos2_b>
  373.  
  374.       RESTORE GRAPHICS SCREEN <label>
  375.  
  376.    The intelligence to support the saving and restoring of screen by using a
  377.    simple <label> name is possible through the use of a small array that
  378.    contains the dGE snapcopy() handle, label name, and positional co-
  379.    ordinates.  The array is named _screens_[] and is created when the Graphics
  380.    language is initialized by SET GRAPHICS ON.
  381.  
  382. -  Added support for the prndev() function.  The command syntax is shown 
  383.    below.
  384.  
  385.       SET GRAPHICS PRINT TO <device> ON <channel>
  386.  
  387.    Where <device> is either "LPT" or "COM", and <channel> is either "LPT1"
  388.    or "LPT2".  Optionally, the more verbose arguments are supported as shown.
  389.    For example, the following syntaxes are supported.  There are no defaults
  390.    and both arguments must be specified.
  391.  
  392.       SET GRAPHICS PRINT TO parallel ON com1
  393.       SET GRAPHICS PRINT TO serial ON com2
  394.  
  395. -  Removed the NORESET option in the command SET GRAPHICS TO per BPS
  396.    request.
  397.  
  398. -  Changed MaxObjects preprocessor constant to 70 as per BPS request.
  399.  
  400. -  A new command SET DGE RESOURCES has been added so that supporting files
  401.    such as character sets, icon files, super font files can be found by your
  402.    applications without specifying the path in the command statements.  The
  403.    search hierarhy is based first on a specified SET DGE RESOURCES command. 
  404.    If a SET command has not been issued, the search for resource files con-
  405.    tinues with a look at the DOS environment for a DGE environment variable.
  406.    Lacking an environmnt variable, the current directory is assumed to be the
  407.    location of all resource files.  Note that like other Grahics Language 
  408.    commands, SET DGE RESOURCES must be used after SET GRAPHICS ON has been 
  409.    issued.
  410.  
  411. -  The following new syntax formats are now supported in addition to the ones
  412.    currently documented.  For example, DRAW <string> AT Pos1,Pos2 is supported
  413.    in addition to the more consistent form listed below.
  414.  
  415.       @ Pos1,Pos2 DRAW <string>
  416.       @ Pos1,Pos2 DRAW STANDARD ICON <icon>
  417.       @ Pos1,Pos2 DRAW SUPER ICON <icon>
  418.  
  419. -  Overlay, and composite icons, although difficult to achieve, are available
  420.    in this release of the graphics language.  It is accomplished by simply
  421.    overlaying 4 separate icon images to achieve color seperations and other 
  422.    special effects.  This involves the creation of icon image collections, 2 
  423.    per icon file that work in unison to effect 4 separate image planes for an
  424.    overlay, and 4 adjoining icons for a composite display.
  425.  
  426.    The command to display a composite icon is shown below:
  427.  
  428.       DRAW SUPER ICON 0 AT 10,10 COMPOSITE
  429.  
  430.    The example shown above will use super icon positions 0 through 3 in the
  431.    current icon file to make a composite icon display at the specified center 
  432.    point.  Each icon in the display will adjoin at position 10,10.
  433.  
  434.    The command to display an overlay icon in four different colors is shown 
  435.    below:
  436.  
  437.       DRAW SUPER ICON 0 AT 10,10 OVERLAY 7 3 15 9
  438.  
  439.    This example will use super icon positions 0 through 3 to make a composite 
  440.    icon display using the colors listed after the OVERLAY option.
  441.  
  442.    Eventually, we'll change the command so that words or numbers can be used
  443.    to specify the color settings for each of the planes.  The problem of 
  444.    course, is that GFONT is incapable of easily designing color icons, so you 
  445.    have to improvise by creating the full icon in one icon position, and then 
  446.    copy it to the other three locations while removing the pixels that 
  447.    correspond to each of the other three colors desired in the icon.  In an 
  448.    effort to make this a useful feature, we've provided a few basic icons that 
  449.    demonstrate the concept.
  450.  
  451.    This capability is not intended to be THE color icon support for dGE.  The
  452.    ability to display color icons is simply a by-product of the OVERLAY 
  453.    clause.  The OVERLAY clause was added to enable parts of icons to be used
  454.    to create a single image.
  455.  
  456. -  A new file named DGELIBR.ICO has been created that provides for specific
  457.    icon management support.  It must be in the DGE environment path, or in
  458.    a directory specified in the SET DGE RESOURCES command.  Lacking either
  459.    of these, the file must be in the current directory of the application
  460.    that uses the Graphics Language.  Currently, its only purpose is for clear-
  461.    ing and displaying the shadowing of icons.  If you are not using the sha-
  462.    dow options for icons, this file will not be called upon by your applica-
  463.    tions.
  464.  
  465.  
  466. ______________________________________________________________________________
  467. Operational Notes:
  468.  
  469. - This product requires a mouse and either EGA or VGA video support.
  470.  
  471. - This product requires Clipper 5.0 and dGE 4.1.  You must be familiar
  472.   with compiling and linking Clipper 5.0 applications and dGE graphics 
  473.    support before attempting to use this product.
  474.  
  475. - Some of the icon files have not been duplicated in inverse format.
  476.   DEMO.ICO is a copy of ICONS000.ICO.  In all, there are 88 icons in-
  477.   cluded with the Graphics Language.  There is no specific documentation
  478.   provided showing each icon but there is a utility included that will
  479.   display each super icon files' contents.  The utility is called
  480.   VIEWICON and must be compiled first.  The syntax for using it follows.
  481.  
  482.      C:\GLDEMO> viewicon sample  <cr>
  483.  
  484.   The icon viewer is capable of displaying composite icons as well.  The
  485.   syntax is shown below.
  486.  
  487.      C:\GLDEMO> viewicon composit /c 
  488.  
  489. - Watch for the release of the dGE Icon Library with more than 1000
  490.   icons.  It will be available from Pinnacle Publishing, Inc.
  491.  
  492. - If the \CLIPPER\INCLUDE or \CLIPPER\LIB directories do not exist on the
  493.   drive specified at installation time, the files GLLIBR.CH and GLLIBR.LIB
  494.   will not be copied.  The installation file assumes Clipper 5.0 has been
  495.   installed first.
  496.  
  497.  
  498. ______________________________________________________________________________
  499. Demo Program:
  500.  
  501.    The sample program contains not a single dGE function call.  Only english
  502.    like statements of the Graphics Language for Clipper 5.0.  Most of it is
  503.    commented and much of it is self explanatory.  The menu it produces is
  504.    quite impressive considering it is less than 20 lines of code.  The entire
  505.    program including charts is only about 100 lines.
  506.  
  507.    Compiling is accomplished in ordinary fashion but does require the Graphics
  508.    Language header file GLLIBR.CH to be present in the compilation directory
  509.    or in the Clipper 5.0 INCLUDE directory.  Additionally, you must link in 
  510.    GLLIBR.LIB in addition to the standard dGE screen drivers and library.
  511.  
  512.    At run-time, this program requires the dGE character sets listed below.
  513.    DEMO.PRG also uses DEMO.ICO which contains all of the icons for the
  514.    menu.  The demo program will look for these files on the C: drive for
  515.    a directory named \DGERES.  DEMO.ICO is simply a copy of ICONS000.ICO.
  516.  
  517.      DGE0EGA.CHR   RMN1628.STX
  518.      DGE1EGA.CHR   RMN2828.STX
  519.      DGE1108.STX   RMN3828.STX
  520.      DGE1609.STX
  521.  
  522.    A batch file to compile DEMO.PRG has also been included named 
  523.    CDEMO.BAT.
  524.  
  525.  
  526. Bill French
  527. Global Technologies Corporation
  528. (303) 337-7758 [CompuServe 71350,461]
  529.